package com.codehub.service;

import com.codehub.entity.po.SysMenu;
import com.codehub.entity.vo.PaginationResultVO;
import com.codehub.entity.query.MenuQuery;

import java.util.List;

/**
 * 菜单表Service
 */
public interface SysMenuService {

    /**
     * 根据条件查询列表
     */
    List<SysMenu> findListByParam(MenuQuery query);

    /**
     * 根据条件查询数量
     */
    Integer findCountByParam(MenuQuery query);

    /**
     * 分页查询
     */
    PaginationResultVO<SysMenu> findListByPage(MenuQuery query);

    /**
     * 新增
     */
    Integer add(SysMenu bean);

    /**
     * 批量新增
     */
    Integer addBatch(List<SysMenu> ListBean);

    /**
     * 批量新增或修改
     */
    Integer addOrUpdateBatch(List<SysMenu> ListBean);

    /**
     * 根据MenuId查询
     */
    SysMenu getMenuByMenuId(Integer menuId);

    /**
     * 根据MenuId更新
     */
    Integer updateMenuByMenuId(SysMenu bean, Integer menuId);

    /**
     * 根据MenuId删除
     */
    Integer deleteMenuByMenuId(Integer menuId);

    List<SysMenu> convertList2Tree4Menu(List<SysMenu> dataList, Integer pid);

    void saveMenu(SysMenu sysMenu);

    List<SysMenu> getAllMenuByRoleIds(String roleIds);

}